package com.gitee.wsl.transform.escape.sample

import com.gitee.wsl.transform.escape.Escape
import com.gitee.wsl.transform.escape.EscapeString

object FullWidthEscape: EscapeString(){
    val source = "1234567890!@#$%^&*()abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-_=+\\|[];:'\",<.>/?"
    val decode = listOf(
        "１", "２", "３", "４", "５", "６", "７", "８", "９", "０",
        "！", "＠", "＃", "＄", "％", "︿", "＆", "＊", "（", "）", "ａ", "ｂ",
        "ｃ", "ｄ", "ｅ", "ｆ", "ｇ", "ｈ", "ｉ", "ｊ", "ｋ", "ｌ", "ｍ", "ｎ",
        "ｏ", "ｐ", "ｑ", "ｒ", "ｓ", "ｔ", "ｕ", "ｖ", "ｗ", "ｘ", "ｙ", "ｚ",
        "Ａ", "Ｂ", "Ｃ", "Ｄ", "Ｅ", "Ｆ", "Ｇ", "Ｈ", "Ｉ", "Ｊ", "Ｋ", "Ｌ",
        "Ｍ", "Ｎ", "Ｏ", "Ｐ", "Ｑ", "Ｒ", "Ｓ", "Ｔ", "Ｕ", "Ｖ", "Ｗ", "Ｘ",
        "Ｙ", "Ｚ", "－", "＿", "＝", "＋", "＼", "｜", "【", "】", "；", "：",
        "'", "\"", "，", "〈", "。", "〉", "／", "？"
    )

    override val warpEntrys: List<Pair<String, String>> = source.mapIndexed{ index: Int, c: Char ->  c.toString() to decode[index]}
}

val Escape.Companion.fullWidth get() = FullWidthEscape